package com.easyadmin.modules.sys.mapper;

import com.easyadmin.modules.sys.dto.HomeStatsDTO;
import com.easyadmin.modules.sys.dto.OrderCountDTO;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

import com.easyadmin.modules.sys.domain.BOrderDispatch;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;

/**
 * 订单派单记录Mapper接口
 *
 * @author mars
 * @date 2025-02-11
 */
@Mapper
public interface BOrderDispatchMapper extends BaseMapper<BOrderDispatch> {
    /**
     * 查询订单派单记录列表
     *
     * @param bOrderDispatch 订单派单记录
     * @return 订单派单记录集合
     */
    List<BOrderDispatch> selectBOrderDispatchList(BOrderDispatch bOrderDispatch);

    /**
     * 获取用户首页统计数据
     *
     * @return HomeStatsDTO
     */
    HomeStatsDTO selectHomeStats(String userId);

    /**
     * 后台管理员统计
     *
     * @return HomeStatsDTO
     */
    HomeStatsDTO selectHomeStatsByAdmin();

    /**
     * 获取用户订单统计echarts数据
     *
     * @param userId 用户id
     * @return List<OrderCountDTO>
     */
    List<OrderCountDTO> getOrderCountByDateRange(@Param("days") Integer days, @Param("userId") String userId);

    /**
     * 管理员查看
     *
     * @param days days
     * @return List<OrderCountDTO>
     */
    List<OrderCountDTO> getOrderCountByDateRangeByAdmin(@Param("days") Integer days);
}
